const { getAddress, getWeather } = require('./api')
// async 声明的函数 是异步函数
// async 的意义是要把内部的异步执行变成同步执行
// await 等待的是一个执行完成的Promise
async function initHomeData() {
  // throw new Error('出错了') // 此处相当于Promise中的reject,注意，按照规范，通过reject抛出的是一个标准的Error类型的错误
  // return '123' // 此处相当于Promise中的resolve
  try { // try catch 捕获错误
    const address = await getAddress()
    console.log(`当前地址：${address}`)
    const weather = await getWeather()
    console.log(`当前地址：${address}, 天气：${weather}`)
  } catch (e) {
    console.log(e)
  }
}

initHomeData().then(res => {
  console.log(res)
}).catch(err => {
  console.log('error>>>>>', err)
}).finally(() => {
  console.log('finally')
})


// async 声明的函数 是异步函数
// async 的意义是要把内部的异步执行变成同步执行
// await 等待的是一个执行完成的Promise
async function initHomeInfos() {
  // const address = await getAddress();
  // console.log(`当前地址：${address}`)
  // const weather = await getWeather()
  // console.log(`当前地址：${address}, 天气：${weather}`)
  const res = await Promise.all([getAddress(), getWeather()])
  return res
}

initHomeInfos().then(res => {
  console.log('then>>>>>', res)
}).catch(err => {
  console.log('error>>>>>', err)
}).finally(() => {
  console.log('finally')
})